package com.ruoyi.flowable.domain;

import java.io.Serializable;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.domain.BaseEntity;


/**
 * 模型扩展信息
 *
 * @author admin
 * @date 2021-03-11 17:06:44
 */
public class ModelInfo implements Serializable {
    private static final long serialVersionUID = -974572277155384236L;
    public static final int CUSTOM_MODEL_TYPE = 0;
    public static final int BIZ_MODEL_TYPE = 1;
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 模型id
     */
    private String modelId;
    /**
     * 模型名
     */
    private String name;
    /**
     * 模型key
     */
    private String modelKey;
    /**
     * 模型类型: 0 自定义流程表单 1是业务流程表单 2是任务流程表单
     */
    private Integer formType;
    /**
     * 系统标识
     */
    private String appSn;
    //应用名称
    @TableField(exist = false)
    private String appName;
    /**
     * 分类编码
     */
    private String categoryCode;
    //分类名称
    @TableField(exist = false)
    private String categoryName;
    /**
     * 模型发布状态（1：草稿；2：待发布；3：已发布；4：停用）
     * 流程图Model状态
     */
    private Integer status;
    @TableField(exist = false)
    private String statusName;
    /**
     * 拓展信息 状态
     */
    private Integer extendStatus;
    @TableField(exist = false)
    private String extendStatusName;
    /**
     * 所属部们id
     */
    private String ownDeptId;
    /**
     * 所属部门名称
     */
    private String ownDeptName;
    /**
     * 流程拥有者ID
     */
    private String flowOwnerNo;
    /**
     * 流程拥有者名称
     */
    private String flowOwnerName;
    /**
     * 流程对接人工号
     */
    private String processDockingNo;
    /**
     * 流程对接人名称
     */
    private String processDockingName;
    /**
     * 适用公司 json id:name
     */
    private String applyCompanies;
    /**
     * 流程中心是否显示 1 是 0 否
     */
    private Integer showStatus;
    /**
     * 适用范围 @see ModelAppliedRangeEnum
     */
    private Integer appliedRange;
    @TableField(exist = false)
    private String appliedRangeName;
    /**
     * 授权功能 code:name
     */
    private String authPointList;
    /**
     * 授权管理人员 {code:name}
     */
    private String superuser;
    /**
     * 业务表单的URL
     */
    private String businessUrl;
    /**
     * 跳过设置
     */
    private Integer skipSet;
    /**
     * 图标
     */
    private String modelIcon;
    /**
     * 排序
     */
    private Integer orderNo;

    @TableField(exist = false)
    private List<String> categoryCodes;
    /**
     * 流程定义ID
     */
    @TableField(exist = false)
    private String processDefinitionId;
    /**
     * flowable的model类型
     * MODEL_TYPE_BPMN = 0;
     * MODEL_TYPE_FORM = 2;
     * MODEL_TYPE_APP = 3;
     * MODEL_TYPE_DECISION_TABLE = 4;
     * MODEL_TYPE_CMMN = 5;
     * MODEL_TYPE_DECISION_SERVICE = 6;
     */
    @TableField(exist = false)
    private Integer modelType;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getModelKey() {
        return modelKey;
    }

    public void setModelKey(String modelKey) {
        this.modelKey = modelKey;
    }

    public Integer getFormType() {
        return formType;
    }

    public void setFormType(Integer formType) {
        this.formType = formType;
    }

    public String getAppSn() {
        return appSn;
    }

    public void setAppSn(String appSn) {
        this.appSn = appSn;
    }

    public String getAppName() {
        return appName;
    }

    public void setAppName(String appName) {
        this.appName = appName;
    }

    public String getCategoryCode() {
        return categoryCode;
    }

    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public Integer getExtendStatus() {
        return extendStatus;
    }

    public void setExtendStatus(Integer extendStatus) {
        this.extendStatus = extendStatus;
    }

    public String getExtendStatusName() {
        return extendStatusName;
    }

    public void setExtendStatusName(String extendStatusName) {
        this.extendStatusName = extendStatusName;
    }

    public String getOwnDeptId() {
        return ownDeptId;
    }

    public void setOwnDeptId(String ownDeptId) {
        this.ownDeptId = ownDeptId;
    }

    public String getOwnDeptName() {
        return ownDeptName;
    }

    public void setOwnDeptName(String ownDeptName) {
        this.ownDeptName = ownDeptName;
    }

    public String getFlowOwnerNo() {
        return flowOwnerNo;
    }

    public void setFlowOwnerNo(String flowOwnerNo) {
        this.flowOwnerNo = flowOwnerNo;
    }

    public String getFlowOwnerName() {
        return flowOwnerName;
    }

    public void setFlowOwnerName(String flowOwnerName) {
        this.flowOwnerName = flowOwnerName;
    }

    public String getProcessDockingNo() {
        return processDockingNo;
    }

    public void setProcessDockingNo(String processDockingNo) {
        this.processDockingNo = processDockingNo;
    }

    public String getProcessDockingName() {
        return processDockingName;
    }

    public void setProcessDockingName(String processDockingName) {
        this.processDockingName = processDockingName;
    }

    public String getApplyCompanies() {
        return applyCompanies;
    }

    public void setApplyCompanies(String applyCompanies) {
        this.applyCompanies = applyCompanies;
    }

    public Integer getShowStatus() {
        return showStatus;
    }

    public void setShowStatus(Integer showStatus) {
        this.showStatus = showStatus;
    }

    public Integer getAppliedRange() {
        return appliedRange;
    }

    public void setAppliedRange(Integer appliedRange) {
        this.appliedRange = appliedRange;
    }

    public String getAppliedRangeName() {
        return appliedRangeName;
    }

    public void setAppliedRangeName(String appliedRangeName) {
        this.appliedRangeName = appliedRangeName;
    }

    public String getAuthPointList() {
        return authPointList;
    }

    public void setAuthPointList(String authPointList) {
        this.authPointList = authPointList;
    }

    public String getSuperuser() {
        return superuser;
    }

    public void setSuperuser(String superuser) {
        this.superuser = superuser;
    }

    public String getBusinessUrl() {
        return businessUrl;
    }

    public void setBusinessUrl(String businessUrl) {
        this.businessUrl = businessUrl;
    }

    public Integer getSkipSet() {
        return skipSet;
    }

    public void setSkipSet(Integer skipSet) {
        this.skipSet = skipSet;
    }

    public String getModelIcon() {
        return modelIcon;
    }

    public void setModelIcon(String modelIcon) {
        this.modelIcon = modelIcon;
    }

    public Integer getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(Integer orderNo) {
        this.orderNo = orderNo;
    }

    public List<String> getCategoryCodes() {
        return categoryCodes;
    }

    public void setCategoryCodes(List<String> categoryCodes) {
        this.categoryCodes = categoryCodes;
    }

    public String getProcessDefinitionId() {
        return processDefinitionId;
    }

    public void setProcessDefinitionId(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }

    public Integer getModelType() {
        return modelType;
    }

    public void setModelType(Integer modelType) {
        this.modelType = modelType;
    }
}
